1. Field of the Invention
The present invention relates to the field of graphical user interfaces (GUI). Specifically, embodiments relate to a graphical user interface that may be used in one implementation to facilitate the configuration of parameters associated with design elements in a highly complex programmable logical device such as a microcontroller software design tool.
2. Related Art
Application-specific integrated circuits (ASICs), have been supplanted more and more by integrated circuits (ICs) that can be programmed to fulfill multiple functions. There are now many various programmable logic architectures, including, for example, programmable logic devices (“PLDs”), programmable logic arrays (“PLAs”), complex programmable logic devices (“CPLDs”), etc. Although there are differences between these various architectures, each of the architectures typically includes a set of input conductors coupled as inputs to an array of logic gates (e.g., a product term array made up of logical AND gates), the outputs of which, in turn, act as inputs to another portion of the logic device. Complex Programmable Logic Devices (“CPLDs”) are large scale PLDs that, like many programmable architectures, are configured to the specific requirements of an application by programming.
Each of these architectures, originally programmed once for a specific function which would be a device's only function for its lifetime, has begun to be implemented in a reprogrammable form. A programmable logic device can now be re-programmed while in operation and can fulfill the functions of many different devices. One of the most complex of the reprogrammable logic devices is the programmable system-on-a-chip, or PSOC, which can be implemented as any of a limitless number of devices, anywhere from simple logic gates to those as complex as microcontrollers.
The complexity of a programmable device, particularly a PSOC, requires complex programming of each of its configurations which can be stored. In many instances, each stored configuration reprogramming can be accomplished “on the fly” by applying the stored configuration to the device.
Initial programming of a highly complex device, though, can be extremely tedious and time consuming. Numerous tools have been developed to aid the programmer in forming each configuration necessary for each device. However, even with current configuration tools, a programmer is required to manually track innumerable lines of programming and device characteristics in order to properly establish a complex device configuration. Most particularly, the configuration of a device's input/output pins that have different characteristics with every different device configuration requires meticulous attention to detail. Moreover, these pin characteristics, crucial for proper device operation, must relate properly to the device configuration and to external circuitry.
Currently, the programming tool sophistication requires a very burdensome level of expertise on the part of the programmer, which can limit the market of users of these complex programmable devices. Various graphical user interfaces are being developed to provide a more user-friendly method of configuring electronic devices.
One tool that exists for aiding the programmer utilizing graphical user interfaces is a dialogue box that may be selected from a menu or other selection icon. The dialogue box then pops up on the screen and typically occupies the center of the screen from which one is working. It contains instructions or a list of items under which are buttons for choosing parameters from the box or for canceling the operation. The dialogue box typically has one or more user interface elements which may or may not contain the complete list of choices needed for the operation being performed, due to limitations in the layout of the dialogue box. The box might require a second level of choices to complete the required operation.
Additionally, a dialogue box obscures a large amount of the display screen that contains the information the user is referencing when selecting items from the dialogue box. The dialogue box then remains on the screen, once an item is chosen, until the user activates a button to perform the operation or to cancel it.
Importantly, the user is not allowed to click on the remaining screen area while the dialogue box is open. Therefore, any other functions that the user may want to select or perform are blocked while the dialogue box is open. Moreover, if the user does not want to make any selections from the dialogue box, the cancel button must be selected by the user before any other function of the software can be performed. Thus, the dialogue box is cumbersome as a tool, and requires excess time for selecting choices and performing operations for which it is designed and it blocks the application of other functions and procedures while it is open.
A need exists, therefore, for a user-friendly method or mechanism for selecting operations via a graphical user interface. Particularly for a graphical user interface used for programming highly complex programmable devices, such as PSOCs, and particularly for configuring I/O pins different for each programmed device configuration. Furthermore, such a method should be much more user-friendly than currently available, enabling a user of normal skills to configure enormously complex programmable devices with multiple configurations.